/****************************************************************/
/*  I M P E T U S     C O P Y R I G H T      S T A T E M E N T  */
/****************************************************************/
/*                                                              */
/*  NOTICE: THIS SOFTWARE CONTAINS TRADE SECRETS THAT BELONG TO */
/*          IMPETUS INFOTECH, AND IS LICENSED BY AN AGREEMENT.  */
/*          ANY UNAUTHORIZED ACCESS, USE, DUPLICATION OR        */
/*          DISCLOSURE IS UNLAWFUL.                             */
/*                                                              */
/*          COPYRIGHT (C) 2008 IMPETUS INFOTECH INDIA PVT LTD   */
/*          ALL RIGHTS RESERVED.                                */
/****************************************************************/
package com.iLabs.spice.common.logging;

/**
 * The interface is used to define Levels for logging standards.
 * It contains some abstract methods which will be implemented in the
 * implementing class. Each variable for the error levels must have a unique
 * number assigned to it.
 */

public interface SpiceLoggerInterface {

	/**
	 * This method returns whether "debug" level is enabled or not as a boolean
	 * 
	 * @return boolean true or false
	 */
	boolean isDebugEnabled();

	/**
	 * This method prints the debug message.
	 * 
	 * @param message
	 */
	void debug(String message);

	/**
	 * This method returns whether "info" level is enabled or not as a boolean
	 * 
	 * @return boolean true or false
	 */
	boolean isInfoEnabled();

	/**
	 * This method prints the information message.
	 * 
	 * @param message
	 */
	void info(String message);

	/**
	 * This method returns whether "warn" level is enabled or not as a boolean
	 * 
	 * @return boolean true or false
	 */
	boolean isWarnEnabled();

	/**
	 * This method prints the warning message.
	 * 
	 * @param message
	 */
	void warn(String message);

	/**
	 * This method returns whether "error" level is enabled or not as a boolean
	 * 
	 * @return boolean true or false
	 */
	boolean isErrorEnabled();

	/**
	 * This method prints the error message.
	 * 
	 * @param message
	 */
	void error(String message);

	/**
	 * This method prints the error message with the cause.
	 * 
	 * @param message
	 * @param throwable
	 */
	void error(String message, Throwable throwable);

}
